Los datos fueron obtenidos con el script hecho para el ejercicio 2 y recolectados
en el laboratorio 4 por una conexion de Wi-Fi a lo largo de 20 minutos de sniffing pasivo.
El script interceptaba todos los paquetes ARP que pasaban por el dominio de broadcast
en el que estaba conectada la maquina, o sea, interceptaba los paquetes ARP de
la conexión Wi-Fi.

Usando esta información pudimos extraer los IPs que solicitaban los mensajes
y los IPs que respondían. Además hicimos un script que dado una direccion MAC
extrae el nombre del \textit{Vendor} (fabricante del chip).

Los IPs de la red escuchada pertenecen al bloque privado \textit{10.0.0.0/8} (también llamado Clase A).

Usando la informaci'on de IPs de origen y el IP que se quiere resolver
armamos un digrafo que representa los pedidos y respuestas de los distintos
hosts de la red \fig{fig:grafo-full} y dónde la arista $(u,v)$ existe sí y sólo sí el host con
IP $u$ pide la dirección mac del host con IP $v$. Como es una red inalámbrica abierta
existen muchos dispositivos móviles que se conectan y desconectan a todo momento.
Los dispositivos creemos que son, en su mayoría, teléfonos celulares y notebooks/netbooks.

\begin{figure}[hb]
   \begin{center}
   \includegraphics[width=0.9\textwidth]{img/grafo.png}
   \caption{\textbf{Grafo de tráfico ARP entre direcciones IP}}
   \label{fig:grafo-full}
   \end{center}
\end{figure}

Analizando el grafo pudimos identificar varios puntos interesantes.
El dispositivo \texttt{10.2.100.254} recibe y envía muchos requests ARP,
comunicándose con la mayoría de los otros dispositivos.
Creemos que el dispositivo es un Router o un Switch DHCP que controla
el tráfico hacia y desde Internet, con lo cual todos los demás dispositivos se tienen que
conectar al él y requieren conocer la dirección física de Router.

\begin{figure}[h!]
   \begin{center}
   \includegraphics[width=0.7\textwidth]{img/grafo_1_1.png}
   \caption{\textbf{Grafo parcial de tráfico ARP entre direcciones IP}}
   \label{fig:grafo-1-1}
   \end{center}
\end{figure}

Es interesante notar todos los dispostivos envían pedidos al Router
pero éste nunca hace un pedido para conocer las direcciones físicas de ellos.
Creemos que esto se debe a que el Router puede implementar una cache de direcciones
[IP, MAC] al recibir solicitudes. Como por ejemplo el caso de \texttt{10.2.100.167}:

\begin{verbatim}
Ether / ARP who has 10.2.100.254 says 10.2.100.167 / Padding
hsaddr:  1c:c1:de:a2:41:00  , vendor:  Hewlett-Packard Company
\end{verbatim}

Hay paquetes ARP especiales, comunmente llamados \textit{Gratuitous ARP}.
Éstos paquetes suelen ser enviados por los dispositivos que ingresan a una red
y tienen la misión de informar su propia IP para que el resto de los hosts
actualicen su tabla caché. Una función muy importante es que al enviar su propia
dirección IP no espera recibir respuesta, con lo cual, si efectivamente
recibe una respuesta eso significa que existe otro host que tiene la misma
dirección IP. El administrador de la red tiene la responsabilidad de detectar
estas colisiones y corregir el problema.

En todos nuestros datos obtenidos, los pedidos ARP provienen de diferentes
hosts, pero las respuestas son todas del host \texttt{10.2.100.254},
lo cual nos refuerza la hipótesis de que es la dirección IP del Router o Switch de la Red Wi-Fi.

En otra parte del grafo se pueden ver pedidos que provienen de la IP \texttt{0.0.0.0}.

\begin{figure}[h!]
   \begin{center}
   \includegraphics[width=0.7\textwidth]{img/grafo_3.png}
   \caption{\textbf{Grafo parcial de tráfico ARP de IP \texttt{0.0.0.0}}}
   \label{fig:grafo-3}
   \end{center}
\end{figure}

Las información recibida por consola correspondiente a éste subgrafo es la siguiente:

\lstset{language=sh,title={Pedidos ARP del host \texttt{0.0.0.0}},caption={Pedidos ARP del host \texttt{0.0.0.0}}}
\begin{footnotesize}
  \begin{lstlisting}[frame=bottomline]
  Ether / ARP who has 169.254.130.15 says 0.0.0.0 / Padding
  hsaddr:  00:21:fe:37:51:bb  , vendor:  Nokia Danmark A/S

  Ether / ARP who has 10.2.100.125 says 0.0.0.0 / Padding
  hsaddr:  a0:f4:19:19:83:3e  , vendor:  Nokia Corporation

  Ether / ARP who has 10.2.100.101 says 0.0.0.0 / Padding
  hsaddr:  5c:b5:24:02:d8:6c  , vendor:  Sony Ericsson Mobile Communications AB
  \end{lstlisting}
\end{footnotesize}

Suponemos que los hosts \texttt{0.0.0.0} envían mensajes ARP siendo aún hosts sin
direcciones IP asignadas. Con lo cual usan la dirección \texttt{0.0.0.0}
como una dirección nula o inválida. Son varios los host que usan esta dirección
ya que existen 3 direcciones MAC diferentes para la misma dirección IP \texttt{0.0.0.0}.

\lstset{language=sh,title={Requests ARP misma ip en origen y solicitud},caption={Requests ARP misma ip en origen y solicitud}}
\begin{footnotesize}
  \begin{lstlisting}[frame=bottomline]
  Ether / ARP who has 169.254.130.15 says 169.254.130.15 / Padding
  hsaddr:  00:21:fe:37:51:bb  , vendor:  Nokia Danmark A/S
  
  Ether / ARP who has 10.2.100.101 says 10.2.100.101 / Padding
  hsaddr:  5c:b5:24:02:d8:6c  , vendor:  Sony Ericsson Mobile Communications AB
  
  Ether / ARP who has 10.2.100.125 says 10.2.100.125 / Padding
  hsaddr:  a0:f4:19:19:83:3e  , vendor:  Nokia Corporation
  \end{lstlisting}
\end{footnotesize}

Analizando las comunicaciones y las direcciones física
podemos ver que los host con IP \texttt{0.0.0.0} del listado anterior
ahora tienen IPs válidas. Probablemente hagan éstos requests Gratuitous para detectar colisiones.

Otra cosa interesante que notamos es que se mandan muchos mensajes
(pedidos y respuestas) repetidos. Creemos que para evitar
la pérdida del mensaje por interferencia o errores en la transmisión
y para evitar la necesidad de esperar respuesta de la
respuesta (el problema de los dos generales) se prefiere hacer varios envíos iguales
de manera de aumentar la probablidad de que el mensaje llegue a destino.

Analizando los gráficos de torta se puede ver que el host con mayor cantidad
de mensajes fue el \texttt{10.2.100.254}, tanto para solicitudes enviadas \fig{fig:ip-src}
como para recibidas \fig{fig:ip-dst}. Esto probablemente se debe al hecho
ya mencionado de ser el Router de acceso a Internet.

\begin{figure}[h!]
   \begin{center}
   \includegraphics[width=1.0\textwidth]{img/us_ipdst.png}
   \caption{\textbf{Direcciones m'as solicitadas por los requests ARP}}
   \label{fig:ip-dst}
   \end{center}
\end{figure}

\begin{figure}[h!]
   \begin{center}
   \includegraphics[width=1.0\textwidth]{img/us_ipsrc.png}
   \caption{\textbf{Hosts que m'as solicitudes enviaron}}
   \label{fig:ip-src}
   \end{center}
\end{figure}

\paragraph{Vendors}

Como parte del análisis pudimos verificar y cuantificar los vendors con más comunicaciones \fig{fig:vendors}.
Esto se debe a dos hechos simultáneos. Por un lado influye la cantidad de comunicaciones
recibidas por una dirección en particular que tiene una placa de ese comerciante y por otro
lado con la cantidad de placas de ese comerciante instaladas en los distintos hosts de la red.
Si bien esta primera aproximación no permite diferenciar estos dos hechos, sí se pueden sacar
conclusiones interesantes. Se nota claramente la cantidad de teléfonos celulares
(Samsung, Apple, Nokia, PEGATRON, RIM) conectados a la red. También se verifica que
la mayoría de las conexiones se da en los vendors Intel y Hewlett-Packard. Esto
nos hace suponer que el el Router tiene un dispositivo Intel y además que la
mayoría de las conexiones se establecen desde Notebooks con placas Intel y HP.

\begin{figure}[hb]
   \begin{center}
   \includegraphics[width=1.0\textwidth]{img/us_vendors.png}
   \caption{\textbf{Vendors que más comunicaciones realizaron}}
   \label{fig:vendors}
   \end{center}
\end{figure}

